// Enesea Application
// (c) jimon game studio

#ifndef JEH_IAPPLICATION
#define JEH_IAPPLICATION

#include "jeTypes.h"

namespace je
{
	namespace app
	{
		//! Application
		class IApplication
		{
		public:
			//! Destructor
			virtual ~IApplication()
			{
			}

			//! Tick
			virtual void Tick() = 0;

			//! Begin Update
			virtual void BeginUpdate() = 0;

			//! End Update
			virtual void EndUpdate() = 0;

			//! Begin Render
			virtual void BeginRender() = 0;

			//! End Render
			virtual void EndRender() = 0;

			//! Set Run
			virtual void SetRun(u1 Mode) = 0;

			//! Return true if run
			virtual u1 IsRun() = 0;
		};
	}
}


#endif
